#ifndef GIMP_H
#define GIMP_H

#include <QtGui/QMainWindow>
#include "ui_gimp.h"
#include "image.h"
#include <QLabel>
#include "kernel.cuh"
#include "OpenGLWindow.h"
#include "PBO.h"
#include "SimpleOperEnum.h"

class GIMP : public QMainWindow
{
	Q_OBJECT

public:
	GIMP(QWidget *parent = 0, Qt::WFlags flags = 0);
	~GIMP();
	QLabel* imageWindow;
	PBO* pbo;

	public Q_SLOTS:
		void open();
		void save();
		void closeApp();

		void undo();

		void toGray();
		void toMono();
		void toRGB();
		void revColor();
		void lighter();
		void contrast();
		void gamma();
		void binarization();
		void histogramAc();

		void convolutionFilterOpen();
		void linearBlurOpen();
		void gaussianBlurOpen();

		void laplasjan();
		void gradient();

		void roberts();
		void sobel();
		void previtt();
		void LoG();
		void DoG();
		void ByZero();
		
		void mediana();

		void erosion();
		void dilation();
		void opening();
		void closing();
		void elemStruct();

		void solarization();
		void relief_map();
		void mirror();
		void bathroom();

		void houghTransform();

		void otsu();
		void pun();
		void kapurSahooWong();

		void normalMap();

private:
	Image* image;
	OpenGLWindow* glWindow;
	Ui::GIMPClass ui;
};

#endif // GIMP_H
